# _*_coding=utf-8 _*_
"""
名称：mission_02_client
版本：v1.2
改进：添加注释，修改文件名的传输。
功能：
客户端，不使用开源框架，基于 TCP 协议改造 echo 服务端和客户端代码，实现服务端接收客户端传输单个文件的功能。
时间：2020-12-04
作者：长毛怪^^
"""

import socket


def sk_cli():
    c = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
    ser_ip = '127.0.0.1'  # 服务器IP地址
    ser_port = 8888  # 这里是服务器端口
    c.connect((ser_ip, ser_port))  # 连接服务器
    msg = c.recv(1024)  # 接到服务器的反馈
    print(msg.decode('utf-8'))

    sendmsg = input('请输入要发送的文件：')  # html_get目录下的任何文件都可以，但只能传一个
    c.send(sendmsg.encode('utf_8'))  # 把文件名发到服务器上
    sendmsg = './html_get/' + sendmsg  # 文件名加上路径
    with open(sendmsg, 'rb') as f:  # 打开文件，把文件发过去
        c.sendfile(f)
        print('文件传输完毕！关闭程序……')
        c.close()  # 程序完成后关闭客户端


if __name__ == '__main__':
    sk_cli()
